import 'dart:ui';

import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:magic_car/bussiness/bussinessinfo.dart';
import 'package:magic_car/common/nodata.dart';
import 'package:magic_car/site/siteinfo.dart';
import 'package:magic_car/user/anserdetail.dart';
import 'package:magic_car/util/HttpHelper.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:toast/toast.dart';

class BussinessPage extends StatefulWidget {
  BussinessPage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State<BussinessPage> {
  List formList;
  ScrollController _controller = new ScrollController();
  int page = 1;
  bool end = false;
  String keyword = "";

  initState() {
    super.initState();
    _controller.addListener(() {
      if (_controller.position.pixels == _controller.position.maxScrollExtent) {
        print('滑动到了最底部');
        if (end) {
          Toast.show("无更多数据", context);
        } else {
          loadData();
        }
      }
    });

    formList = [];
    loadData();
  }

  //加载数据
  loadData() async {
    if (end) return;
    Map<String, String> map = new Map();
    SharedPreferences pref = await SharedPreferences.getInstance();
    map["id"] = pref.getString('uid');
    map["page"] = page.toString();
    map["keyword"] = keyword;
    print(map);

    HttpHelper.post(HttpHelper.API_Mybussiness, (data) async {
      if (data != null) {
        print(data);

        if (data["info"].length == 0) {
          Toast.show('暂无更多数据', context);
        } else {
          if (data["code"].toString() == "1") {
            if (data["info"].length < 10) {
              setState(() {
                end = true;
              });
            } else {
              setState(() {
                page = page+1;
              });
              if (page > 1) {
                List add = data["info"];
                formList.addAll(add);
                setState(() {
                  formList = formList;
                });
              } else {
                setState(() {
                  formList = data["info"];
                });
              }
            }
          }
        }
      }
    }, params: map);
  }

  Widget buildImgs(item) {
    List<Widget> tiles = [];

    Widget content;

    List items = item["image_url"];

    for (var i = 0; i < items.length; i++) {
      //List temp1 = items[i] as List;
      tiles.add(Padding(
        padding: new EdgeInsets.fromLTRB(5, 0, 0, 10),
        child: GestureDetector(
            onTap: () {},
            child: Image.network(items[i], width: 100, height: 100)),
      ));
    }
    content = new Wrap(
        children: tiles //重点在这里，因为用编辑器写Column生成的children后面会跟一个<Widget>[]，
        //此时如果我们直接把生成的tiles放在<Widget>[]中是会报一个类型不匹配的错误，把<Widget>[]删了就可以了
        );
    return content;
  }

  Widget buildcontent() {
    List<Widget> tiles = [];
    Widget content;
    if (formList.length > 0) {
      for (var item in formList) {
        tiles.add(Padding(
            padding: new EdgeInsets.fromLTRB(15, 15, 15, 0),
            child: Container(
              decoration: new BoxDecoration(
                color: Colors.white,
              ),
              child: new GestureDetector(
                behavior: HitTestBehavior.opaque,
                onTap: () {
                  Navigator.of(context)
                      .push(new MaterialPageRoute(builder: (_) {
                    return new BussinessInfoPage(item["id"].toString());
                  }));
                },
                child: new Container(
                    child: new Row(children: <Widget>[
                  Padding(
                      padding: new EdgeInsets.fromLTRB(20, 20, 20, 20),
                      child: new Container(
                          decoration: new BoxDecoration(
                            border: new Border.all(
                                color: Color(0xFFFF0000), width: 0.5), // 边色与边宽度
                            color: Color(0xFF9E9E9E), // 底色
                            //        borderRadius: new BorderRadius.circular((20.0)), // 圆角度
                            borderRadius:
                                new BorderRadius.circular(25), // 也可控件一边圆角大小
                          ),
                          height: 50,
                          width: 50,
                          child: ClipRRect(
                            borderRadius: BorderRadius.circular(25),
                            child:
                                Image.asset("resource/images/user/user6.png"),
                            // child:item['avatar']==""?Image.asset("resource/images/user/user6.png"):
                            // CachedNetworkImage(imageUrl: item['avatar'],fit: BoxFit.cover,)
                            // child: FadeInImage.assetNetwork(
                            //   placeholder: "resource/images/user/user6.png",
                            //   image: item['avatar'],
                            //   fit: BoxFit.cover,
                            // ),
                          ))),
                  // child: item['avatar'] != ""
                  //     ? Image.network(
                  //         item['avatar'],

                  //       )
                  //     : Image.asset('resource/images/user/user6.png'))),
                  Expanded(
                    child: new Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      mainAxisAlignment: MainAxisAlignment.start,
                      children: <Widget>[
                        Text(item['name']),
                        Text(
                          item['provinceName'] +
                              item['cityName'] +
                              item['areaName'],
                          style: TextStyle(
                              fontSize: 14,
                              color: Color.fromRGBO(120, 120, 120, 1)),
                        ),
                        Padding(
                            padding: new EdgeInsets.fromLTRB(0, 5, 20, 5),
                            child: Text(
                              item['mobile'],
                              style: TextStyle(
                                  fontSize: 14,
                                  color: Color.fromRGBO(120, 120, 120, 1)),
                            ))
                      ],
                    ),
                    flex: 1,
                  )
                ])),
              ),
            )));
      }
    }
    tiles.add(
      Padding(
          padding: new EdgeInsets.fromLTRB(10, 30, 10, 0),
          child: new Container(
            width: double.infinity,
            child: new Card(
              color: Color.fromRGBO(27, 182, 251, 1),
              elevation: 16.0,
              child: new FlatButton(
                child: new Padding(
                  padding: new EdgeInsets.fromLTRB(0, 0, 0, 0),
                  child: new Text(
                    '继续添加车商',
                    style: new TextStyle(color: Colors.white, fontSize: 16.0),
                  ),
                ),
                onPressed: () {
                  Navigator.pushNamed(context, 'applybussiness');
                },
              ),
            ),
          )),
    );
    content = new Column(
        children: tiles //重点在这里，因为用编辑器写Column生成的children后面会跟一个<Widget>[]，
        //此时如果我们直接把生成的tiles放在<Widget>[]中是会报一个类型不匹配的错误，把<Widget>[]删了就可以了
        );
    return content;
  }

  Widget build(BuildContext context) {
    return new Scaffold(
        appBar: new AppBar(
          title: new Text(
            '车商管理',
            style: TextStyle(color: Colors.black),
          ),
          backgroundColor: Colors.white,
          elevation: 0,
          // backgroundColor: Color.fromRGBO(255, 204, 48, 1),
        ),
        body: formList.length < 1
            ? Nodata()
            //  new Center(
            //     child: Padding(
            //         padding: new EdgeInsets.fromLTRB(30, 0, 30, 0),
            //         child: new Container(
            //           width: double.infinity,
            //           child: new Card(
            //             color: Color.fromRGBO(27, 182, 251, 1),
            //             elevation: 16.0,
            //             child: new FlatButton(
            //               child: new Padding(
            //                 padding: new EdgeInsets.fromLTRB(0, 0, 0, 0),
            //                 child: new Text(
            //                   '无数据,添加车商',
            //                   style: new TextStyle(
            //                       color: Colors.white, fontSize: 16.0),
            //                 ),
            //               ),
            //               onPressed: () {
            //                 Navigator.pushNamed(context, 'applybussiness');
            //               },
            //             ),
            //           ),
            //         )),
            //   )
            : new Center(
                child: Container(
                    decoration: new BoxDecoration(
                      color: Color.fromRGBO(238, 238, 238, 1),
                    ),
                    // child: new Column(children: <Widget>[
                    //   Container(
                    //     width: 200,
                    //     height: 50,
                    //     child: Text('1111111'),
                    //   ),
                    // child: new ListView(
                    //   children: <Widget>[buildcontent()],
                    // )
                    child:
                        // new ListView(children: <Widget>[
                        Stack(
                      children: <Widget>[
                        Align(
                          alignment: Alignment.topLeft,
                          child: SizedBox(
                              width: double.infinity,
                              height: 50,
                              child: Padding(
                                  padding:
                                      new EdgeInsets.fromLTRB(15, 5, 15, 0),
                                  // padding: new EdgeInsets.all(10),
                                  child: Container(
                                      child: Row(
                                          mainAxisAlignment:
                                              MainAxisAlignment.end,
                                          children: <Widget>[
                                        Expanded(
                                          child: new Container(
                                            child: new TextField(
                                              onSubmitted: (value) {
                                                print(value);
                                                //if(value=="")return;
                                                setState(() {
                                                  keyword = value;
                                                  page = 1;
                                                  end = false;
                                                });
                                                print('搜索');
                                                loadData();
                                              },
                                              // controller: _phonecontroller,
                                              decoration: new InputDecoration(
                                                  border: InputBorder.none,
                                                  hintText: '搜索',
                                                  prefixIcon:
                                                      Icon(Icons.search)),
                                            ),
                                            decoration: new BoxDecoration(
//背景
                                              color: Colors.white,
                                              //设置四周圆角 角度 这里的角度应该为 父Container height 的一半
                                              borderRadius: BorderRadius.all(
                                                  Radius.circular(25.0)),
                                              //设置四周边框
                                              border: new Border.all(
                                                  width: 1,
                                                  color: Colors.white),
                                            ),
                                          ),
                                        ),
                                        // FlatButton(
                                        //     onPressed: () {
                                        //       Navigator.pushNamed(context, "upAsk");
                                        //     },
                                        //     child: new Text(
                                        //       "我要提问",
                                        //       style: TextStyle(
                                        //           color: Color.fromRGBO(
                                        //               27, 182, 251, 1),
                                        //           fontSize: 13),
                                        //     ))
                                      ])))),
                        ),
                        Align(
                            alignment: Alignment.bottomCenter,
                            child: Padding(
                                padding: new EdgeInsets.fromLTRB(0, 60, 0, 10),
                                child: new RefreshIndicator(
                                  onRefresh: _onRefresh,
                                  child: new ListView(
                                      controller: _controller,
                                      children: <Widget>[buildcontent()]),
                                ))),
                      ],
                    )))
        //])))),
        );
  }

  Future<Null> _onRefresh() async {
    await Future.delayed(Duration(seconds: 3), () {
      print('refresh');
      setState(() {
        page = 1;
      });
      loadData();
    });
  }
}
